d0be32394774c5c9c57070fc104821e5155aa88f,hbase-common/src/test/java/org/apache/hadoop/hbase/util/TestOrderedBytes.java,TestOrderedBytes,testBlobCopy,#,777
Before Change
assertEquals("Buffer overflow.", 0, a[a.length - 1]);
// verify skip
buf1.setPosition(0);
assertEquals("Surprising return value.", expectedLen, OrderedBytes.skip(buf1));
assertEquals("Did not skip enough bytes.", expectedLen, buf1.getPosition());
// verify decode
buf1.setPosition(0);
assertArrayEquals("Deserialization failed.", val, OrderedBytes.decodeBlobCopy(buf1));
assertEquals("Did not consume enough bytes.", expectedLen, buf1.getPosition());
}
After Change
// allocate a buffer 3-bytes larger than necessary to detect over/underflow
int expectedLen = val.length + (Order.ASCENDING == ord ? 1 : 2);
byte[] a = new byte[expectedLen + 3];
PositionedByteRange buf1 = new SimplePositionedByteRange(a, 1, expectedLen + 1);
buf1.setPosition(1);
// verify encode
assertEquals("Surprising return value.",
expectedLen, OrderedBytes.encodeBlobCopy(buf1, val, ord));
assertEquals("Broken test: serialization did not consume entire buffer.",
buf1.getLength(), buf1.getPosition());
assertEquals("Surprising serialized length.", expectedLen, buf1.getPosition() - 1);
assertEquals("Buffer underflow.", 0, a[0]);
assertEquals("Buffer underflow.", 0, a[1]);
assertEquals("Buffer overflow.", 0, a[a.length - 1]);
// verify skip
buf1.setPosition(1);
assertEquals("Surprising return value.", expectedLen, OrderedBytes.skip(buf1));
assertEquals("Did not skip enough bytes.", expectedLen, buf1.getPosition() - 1);
// verify decode
buf1.setPosition(1);
assertArrayEquals("Deserialization failed.", val, OrderedBytes.decodeBlobCopy(buf1));
assertEquals("Did not consume enough bytes.", expectedLen, buf1.getPosition() - 1);
}